//#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
// // Definition for singly-linked list.
//  struct ListNode {
//      int val;
//     struct ListNode *next;
//  };
//
//typedef struct ListNode ListNode;
//struct ListNode* getIntersectionNode(struct ListNode* headA,
//    struct ListNode* headB) {
//    ListNode* curA = headA, * curB = headB;
//    int sizeA = 0, sizeB = 0;
//
//    while (curA) {
//        sizeA++;
//        curA = curA->next;
//    }
//    while (curB) {
//        sizeB++;
//        curB = curB->next;
//    }
//
//    int size = abs(sizeA - sizeB);
//    ListNode* long = headA;
//    ListNode* short = headB;
//    if (sizeA < sizeB) {
//        long = headB;
//        short = headA;
//    }
//
//    while (size--)
//        long = long->next;
//
//    while (short&& long) {
//        if (short == long)
//            return short;
//    }
//    return NULL;
//}